public class User {

    public static void main(String[] args) {
        int[] A = {0};
        int m = 0;
        int[] B = {1};
        int n = 1;
        merge(A, m, B, n);
        System.out.println(A.length);
        System.out.println(B.length);
    }
    //解法一：三指针法
    public static void merge(int[] A, int m, int[] B, int n) {
        //  保存当前两个数组最后元素位置索引
        int indexA=m-1,indexB=n-1;
        //  条件是有一个数组判断完了
        while(indexA>=0 && indexB>=0){
            //  获取A数组最后填充元素的位置
            int index = indexA+indexB+1;
            A[index] = A[indexA]>B[indexB]?A[indexA--]:B[indexB--];
        }
        // 防止A数组先判断完，B数组可能没完全并入A数组
        while(indexB>indexA){
            A[indexB] = B[indexB--];
        }
    }

    private String  name ;


    private void  test(String name){
        this.name = name;
    }
}
